package com.healthyeating.manage.mapper;

import com.healthyeating.manage.domain.Comment;
import com.healthyeating.manage.domain.UserComment;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 评论Mapper接口
 *
 * @author 段奇乐
 * @date 2025-03-22
 */
public interface CommentMapper {

    /**
     * 查询评论列表
     *
     * @param shareId 发现分享id
     * @return 评论集合
     */
    public List<Comment> selectFirstCommentListByShareId(Long shareId);

    /**
     * 根据一级评论查询评论列表
     *
     * @param map 一级评论id和shareId
     * @return 评论集合
     */
    public List<Comment> selectSecondCommentList(Map<String, Object> map);

    /**
     * 根据commentId查询评论
     *
     * @param commentId 评论commentId
     * @return 评论
     */
    public Comment selectCommentListByCommentId(Long commentId);

    /**
     * 新增评论
     *
     * @param comment 评论
     * @return 结果
     */
    public int insertComment(Comment comment);

    /**
     * 修改评论
     *
     * @param comment 评论
     * @return 结果
     */
    public int updateComment(Comment comment);

    /**
     * 查询评论点赞记录
     *
     * @param commentId 评论id
     * @param userId 用户id
     * @return 点赞记录
     */
    public UserComment selectUserCommentByCommentIdAndUserId(@Param("commentId") Long commentId, @Param("userId") Long userId);

    /**
     * 新增评论点赞记录
     *
     * @param userComment 评论点赞记录
     * @return 结果
     */
    public int insertUserComment(UserComment userComment);

    /**
     * 修改评论点赞记录
     *
     * @param userComment 评论点赞记录
     * @return 结果
     */
    public int updateUserComment(UserComment userComment);
}
